package com.guoranhao.business.model;

import com.guoranhao.tool.model.BaseModel;
import com.guoranhao.tool.model.FieldComment;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
@Accessors(chain = true)
public class ShoppingCart extends BaseModel {
    /**
     * 购物车主键ID
     */
    @FieldComment(value="购物车主键ID")
    @NotNull(message="购物车主键ID")
    private Long shoppingCartId;

    /**
     * 用户ID
     */
    @FieldComment(value="用户ID")
    @NotNull(message="用户ID")
    private Long userId;

    /**
     * openID
     */
    @FieldComment(value="openID")
    @NotNull(message="openID")
    private String openId;

    /**
     * 商品SKUID
     */
    @FieldComment(value="商品SKUID")
    @NotNull(message="商品SKUID")
    private Long skuId;

    /**
     * 购买数量
     */
    @FieldComment(value="购买数量")
    @NotNull(message="购买数量")
    private Integer quantity;

    /**
     * 创建时间
     */
    @FieldComment(value="创建时间")
    private Date createTime;

    /**
     * 最后修改时间
     */
    @FieldComment(value="最后修改时间")
    private Date updateTime;

    /**
     * 是否勾选(1:是0：否)
     */
    @FieldComment(value="是否勾选")
    private Integer skuCheck;

    /**
     * 方式（0：加入购物车 1：直接购买没有支付）
     */
    @FieldComment(value="方式")
    private Integer userAddCartType;

    /**
     * 创建用户ID
     */
    @FieldComment(value="创建用户ID")
    private Long createUserId;

    /**
     * 最后修改用户ID
     */
    @FieldComment(value="最后修改用户ID")
    private Long lastModifyUserId;

    /**
     * 购物车状态0:无效;1:有效
     */
    @FieldComment(value="购物车状态0")
    private Integer status;

    public void initWithDefaultValue() {
        this.userId = 0L;
        this.openId = "";
        this.skuId = 0L;
        this.quantity = 0;
        this.createTime = new Date();
        this.updateTime = new Date();
        this.skuCheck = 0;
        this.userAddCartType = 0;
        this.createUserId = 0L;
        this.lastModifyUserId = 0L;
        this.status = 0;
    }
}